1. Field of the Invention
The invention generally relates to telecommunications. In particular, the invention relates to serialized prevention of duplicate charging records.
2. Description of the Related Art
Traditional circuit switched telecommunications networks—both wired and wireless—typically base billing on connection time, such as call duration. Network elements, typically switching centers, generate records that contain user specific information about provided services for billing purposes. In the context of the circuit switched telecommunications networks these records are often called “call detail records”.
With the advent of mobile packet data telecommunications networks various packet switched services have been introduced to consumers. In such second generation (2G) mobile telecommunications networks as Global System for Mobile Communications (GSM) and Code Division Multiple Access (CDMA) networks, packet data services are typically provided with General Packet Radio Service (GPRS) technology. Third Generation Partnership Project (3GPP) mobile telecommunications networks, often based on Wideband Code Division Multiple Access (W-CDMA), also have their associated packet data services which typically are further developments of the General Packet Radio Service technology.
Packet switched data allows providing a significantly increased amount of various data services. Packet switched data also allows more billing grounds. For example, charging may be based on volumes of data transferred rather than connection time.
The increased amount of data services and their associated billing options has led to a situation in which more and more network elements process records containing user specific information about provided packet data services for billing purposes, which records are often called “charging data records” in the context of the packet switched telecommunications networks.
There are more network elements generating the records compared to traditional circuit switched telecommunications networks. For example, Serving General Packet Radio Service Support Nodes (SGSN) and Gateway General Packet Radio Service Support Nodes (GGSN) may generate charging data records. The generated charging data records are typically collected by a charging gateway which consolidates the records and transfers them to a billing system.
Today, there are typically multiple charging gateways per one charging data record generating network element due to e.g. large volumes of various types of charging data records generated. This increased complexity leads to increased probability of fault situations, such as to increased probability of a charging gateway going down.
Prior art, such as technical specification 3GPP TS-32.215 issued by the 3rd Generation Partnership Project, teaches procedures to be taken in a case of one charging gateway being down at a time. However, as discussed above, today there often are multiple charging gateways used to consolidate and transfer charging data records from a charging data record generating network element to a billing system. Therefore, there is a possibility of more than one charging gateway being down or otherwise unavailable at a time. Yet, prior art includes no specific procedures for such situations, Rather, in prior art the same procedures are taken in a case of multiple charging gateways being down at a time as when only one charging gateway is down. This may result in lost charging data records, as discussed next in more detail.
Let us consider a situation in which a Serving General Packet Radio Service Support Node is generating charging data records which are transferred to three charging gateways: CG1, CG2 and CG3. During normal operation, CG1 operates as primary charging gateway, and Mobility Management generated records (M-CDR), SGSN delivered Short message Mobile Originated records (SMO-CDR) and SGSN delivered Short message Mobile Terminated records (SMT-CDR) are to be transferred to CG1, whereas SGSN generated records (S-CDR) are to be transferred to CG3. CG2 is to operate as a backup for CG1.
Now, if CG1 goes down or cannot otherwise be reached by SGSN, charging data record sets which were sent to CG1 but for which no acknowledgement was received, are re-transferred to CG2. Since SGSN has no knowledge of whether CG1 received and successfully processed the charging data record sets, the charging data record sets re-transferred to CG2 are marked as potential duplicates. As a result, CG2 does not process the received charging data record sets and forward them to a billing system immediately. Rather, CG2 stores the received charging data record sets temporarily to await further instructions from SGSN.
Let us assume that the charging data record sets originally sent to CG1 and re-transferred to CG2 and marked as potential duplicates are assigned first sequence numbers 1 to 250 to identify them. Since CG2 is now operating as a primary charging gateway, newly generated M-CDR, SMO-CDR and SMT-CDR record sets will also be sent to CG2. These newly generated record sets will be assigned second sequence numbers starting from 251. Assuming CG1 remains unreachable, these second sequence numbers will reach 65535 (or 0xFFFF) after which sequence numbers to be assigned will revert back to 0.
As mentioned above, S-CDR records were to be sent to CG3. However, if CG3 also goes down or cannot otherwise be reached by SGSN, the S-CDR record sets which were sent to CG3 but for which no acknowledgement was received, are also re-transferred to CG2 and marked as potential duplicates. Assuming this retransmission occurs after the above second sequence numbers reached 65535, the S-CDR record sets originally sent to CG3 and re-transferred to CG2 and marked as potential duplicates are assigned third sequence numbers starting again from 0.
As a result, CG2 has received two different transmissions of charging data record sets marked as potential duplicates which both have been assigned sequence numbers starting from 0: the charging data record sets originally sent to CG1 and the charging data record sets originally sent to CG3.
Due to the identical sequence numbers assigned CG2 refuses to accept the latter charging data record sets with identical sequence numbers, i.e. the charging data record sets originally sent to CG3. CG2 notifies SGSN about the rejection of the charging data record sets originally sent to CG3. However, since CG2 will use the assigned sequence numbers to identify the rejected charging data record sets, SGSN cannot tell whether CG2 means the charging data record sets originally sent to CG1 or the charging data record sets originally sent to CG3. As a result, loss of charging data record sets may occur.